#pragma once
#include "RollupPage.h"

class SpriteUtility : public UtilityObj
{
#define  ACT_UTILITY_CLASSID   Class_ID(0x208e5d91, 0x11103f6e)
	class UtilityClassDesc : public ClassDesc2
	{
		int		IsPublic() { return 1;}
		void*	Create(BOOL loading = FALSE) { return &SpriteUtility::sm_Utility;}
		const TCHAR*  ClassName()	{ return _T("Venus Sprite Utility");}
		SClass_ID	SuperClassID()	{ return UTILITY_CLASS_ID;}
		Class_ID	ClassID()		{ return ACT_UTILITY_CLASSID;}
		const TCHAR* Category()		{ return MAX_CATEGORY;}
	};
public:
	SpriteUtility(void);
	virtual ~SpriteUtility(void);
	static inline ClassDesc2* GetClassDesc() { return &sm_UtilityClassDesc;}
	static inline SpriteUtility& get() { return sm_Utility; }
	inline RollupPageUtility& GetUtilityDialog() { return m_RPUtility;}
private:
	virtual void BeginEditParams(Interface *pIntf,IUtil *pIUtil);
	virtual void EndEditParams(Interface *pIntf,IUtil *pIUtil);
	virtual void DeleteThis();

	RollupPageUtility m_RPUtility;
private:
	static UtilityClassDesc sm_UtilityClassDesc;
	static SpriteUtility  sm_Utility;
};
